10000 REM (Mg,Ca)Cl2 10050 DEFDBL A-H, M-Z 10100 DIM HGKG(40),II(40),JJ(40),BP(10),BQ(10) 10150 DIM ATZ(4),ADZ(4),AAT(4),AAD(4) 10200 DIM BV(10),A(8),C(18) 10250 DIM QR(11),QT(10),QZR(9),QZT(9) 10300 DIM FFD(2),FFP(5),NNT$(2),NND$(2),NNP$(5) 10350 DIM DU(10),B0(20),B1(20),CMX(20),CPJ0(10),CPJ1(10),CPJ2(10),CPJ3(10) 10400 DIM B0CA(20),B1CA(20),CCA(20),CPJ0CA(10),CPJ1CA(10),CPJ2CA(10),CPJ3CA(10) 10450 DIM B0MG(20),B1MG(20),CMG(20),CPJ0MG(10),CPJ1MG(10),CPJ2MG(10),CPJ3MG(10) 10500 GOSUB *BLOCKDATA 10550 GOSUB *UNIT 10900 GOSUB *PARAMETERS 10950 INPUT "Which salt do you consider? MgCl2(1) or CaCl2(2)? Input the parenthesized number";ISALT 11000 IF ISALT<1 OR ISALT>2 THEN GOTO 10950 11050 INPUT"Pressure? If end, input 0";X 11100 IF X=0 THEN GOTO 14100 11150 INPUT"Temperature";TT 11200 T=TT 11250 GOSUB *TTTT 11300 T=TTT 11400 RT=GASCON*T 11450 GOSUB *BBT 11500 INPUT "Molality";MOL 11510 IF MOL=<0 THEN GOTO 11500 11550 PRES=X 11600 PINPUT=PRES/FP 11650 DGSS=PINPUT/(T*.4#) 11660 IF T>=647.126# THEN GOTO 12000 11700 DLL=0 : DVV=0 11750 DL=DLL : DV=DVV 11800 GOSUB *PCORRTPDLDV 11850 IF ABS((PINPUT-P)/P)=<5D-005 THEN PPP=PINPUT : GOTO 12950 11900 IF PINPUT>P THEN DGSS=DL:GOTO 12000 11950 IF PINPUT

1.9# THEN DD=1.9# 14550 D=DD 14600 GOSUB *QQTD 14650 Q0=Q 14700 GOSUB *BASEDT 14750 PP=RT*DD*BASEF+Q0 14800 DPD=RT*(Z+Y*DZB)+Q5 : DQ=DPD 14850 IF DPD>0 THEN GOTO 15050 14900 IF D>=.2967# THEN DD=DD*1.02 14950 IF D<.2967# THEN DD=DD*.98# 15000 IF LL=<10 GOTO 14400 15050 DPDX=DPD*1.1# 15100 IF DPDX<.1# THEN DPDX=.1# 15150 DP=ABS(1#-PP/PPP) 15200 IF DP<1D-009 THEN GOTO 15600 15250 IF D>.3# AND DP<1D-008 THEN GOTO 15600 15300 IF D>.7# AND DP<1D-007 THEN GOTO 15600 15350 XP=(PPP-PP)/DPDX 15400 IF ABS(XP)>.1# THEN XP=XP*.1#/ABS(XP) 15450 DD=DD+XP 15500 IF DD=<0 THEN DD=1D-008 15550 IF LL=<30 THEN GOTO 14400 15600 DOUT=DD 15650 RETURN 15700 *CORRTPDLDVDELG 15750 IF T>646.3# THEN GOTO 16650 15800 DLIQ=DLL 15850 IF DLL=<0 THEN DLIQ=1.11#-.0004*T 15900 DLL=DLIQ:D=DLIQ 15950 GOSUB *DFINDDOUTPDTDPD 16000 D=DOUT:DL=DOUT 16050 GOSUB *THERMDT 16100 GL=GD 16150 DVAP=DVV 16200 IF DVV=<0 THEN DVAP=PPP/RT 16250 D=DVAP:DVV=DVAP 16300 GOSUB *DFINDDOUTPDTDPD 16350 IF DOUT<5D-007 THEN DOUT=5D-007 16400 D=DOUT:DV=DOUT 16450 GOSUB *THERMDT 16500 GV=GD 16550 DELG=GL-GV 16600 RETURN 16650 PPP=0 16700 IF T>647.126# THEN RETURN 16750 DELG=0 16800 TAUC=.657128#*(1#-T/647.126#)^.325# 16850 DL=.322#+TAUC 16900 DV=.322#-TAUC 16950 D=DV 17000 GOSUB *BASEDT 17050 GOSUB *QQTD 17150 PPP=RT*DV*BASEF+Q 17200 RETURN 17250 *BBT 17300 BV(1)=1# 17350 FOR I=2 TO 10 17400 BV(I)=BV(I-1)*TZ/T 17450 NEXT I 17500 B1=BP(1)+BP(2)*LOG(1#/BV(2)) 17550 B2=BQ(1) 17600 B1T=BP(2)*BV(2)/TZ 17650 B2T=0 17700 B1TT=0 17750 B2TT=0 17800 FOR I=3 TO 10 17850 B1=B1+BP(I)*BV(I-1) 17900 B2=B2+BQ(I)*BV(I-1) 17950 B1T=B1T-CDBL((I-2))*BP(I)*BV(I-1)/T 18000 B2T=B2T-CDBL((I-2))*BQ(I)*BV(I-1)/T 18050 B1TT=B1TT+BP(I)*CDBL((I-2))*CDBL((I-2))*BV(I-1)/(T*T) 18100 B2TT=B2TT+BQ(I)*CDBL((I-2))*CDBL((I-2))*BV(I-1)/(T*T) 18150 NEXT I 18200 B1TT=B1TT-B1T/T 18250 B2TT=B2TT-B2T/T 18300 RETURN 18350 *BASEDT 18400 Y=.25#*B1*D 18450 XX=1#-Y 18500 Z0=(1#+ALPHA*Y+BETA*Y*Y)/(XX*XX*XX) 18550 Z=Z0+4#*Y*(B2/B1-GAMMA) 18600 DZ0=(ALPHA+2#*BETA*Y)/(XX*XX*XX)+3#*(1#+ALPHA*Y+BETA*Y*Y)/(XX*XX*XX*XX) 18650 DZB=DZ0+4#*(B2/B1-GAMMA) 18700 AB=(-1#)*LOG(XX)-(BETA-1#)/XX+28.16666667#/(XX*XX)+4#*Y*(B2/B1-GAMMA)+15.166666667#+LOG(D*RT/.101325) 18800 BASEF=Z 18850 BB2TT=T*T*B2TT 18900 UB=(-1#)*T*B1T*(Z-1#-D*B2)/B1-D*T*B2T 19000 CVB=2#*UB+(Z0-1#)*((T*B1T/B1)*(T*B1T/B1)-T*T*B1TT/B1)-D*(BB2TT-GAMMA*B1TT*T*T)-(T*B1T/B1)*(T*B1T/B1)*Y*DZ0 19050 DPDTB=BASEF/T+BASEF*D/Z*(DZB*B1T/4#+B2T-B2/B1*B1T) 19100 SB=UB-AB 19150 RETURN 19200 *QQTD 19250 QR(1)=0 19300 Q5=0 19350 Q=0 19400 AR=0 19450 DADT=0 19500 CVR=0 19550 DPDTR=0 19600 E=EXP((-1#)*AA*D) 19650 Q10=D*D*E 19700 Q20=1#-E 19750 QR(2)=Q10 19800 QV=TZ/T 19850 QT(1)=T/TZ 19900 FOR I=2 TO 10 19950 QR(I+1)=QR(I)*Q20 20000 QT(I)=QT(I-1)*QV 20050 NEXT I 20100 FOR I=1 TO INC 20150 K=II(I)+1 20200 L=JJ(I) 20250 QK=CDBL(K) : QL=CDBL(L) 20350 QZR(K-1)=QR(K+1):QZT(L)=QT(L+1):QZR(K)=QR(K+2):QZT(L+1)=QT(L+2) 20400 QP=HGKG(I)*AA*QZR(K-1)*QZT(L) 20450 Q=Q+QP 20500 Q5=Q5+AA*(2#/D-AA*(1#-E*(QK-1#)/Q20))*QP 20550 AR=AR+HGKG(I)*QZR(K)*QZT(L)/(Q10*QK*RT) 20600 DFDT=Q20^QK*(1#-QL)*QZT(L+1)/(TZ*QK) 20650 D2F=QL*DFDT 20700 DPT=DFDT*Q10*AA*QK/Q20 20750 DADT=DADT+HGKG(I)*DFDT 20800 DPDTR=DPDTR+HGKG(I)*DPT 20850 CVR=CVR+HGKG(I)*D2F/GASCON 20900 NEXT I 20950 QP=0 21000 Q2A=0 21050 FOR J=37 TO 40 21100 IF HGKG(J)=0 THEN GOTO 22350 21150 K=II(J) 21200 KM=JJ(J) 21250 QK=CDBL(K) : QKM=CDBL(KM) 21300 DDZ=ADZ(J-36) 21350 DEL=D/DDZ-1# 21400 IF ABS(DEL)<1D-010 THEN DEL=1D-010 21500 EX1=(-1#)*AAD(J-36)*DEL^QK 21550 DEX=EXP(EX1)*DEL^QKM 21600 ATT=AAT(J-36) 21650 TX=ATZ(J-36) 21700 TAU=T/TX-1# 21750 EX2=(-1#)*ATT*TAU*TAU 21800 TEX=EXP(EX2) 21850 Q10=DEX*TEX 21900 QM=QKM/DEL-QK*AAD(J-36)*DEL^(QK-1#) 21950 FCT=QM*D*D*Q10/DDZ 22000 Q5T=FCT*(2#/D+QM/DDZ)-(D/DDZ)*(D/DDZ)*Q10*(QKM/(DEL*DEL)+QK*(QK-1#)*AAD(J-36)*DEL^(QK-2#)) 22050 Q5=Q5+Q5T*HGKG(J) 22100 QP=QP+HGKG(J)*FCT 22150 DADT=DADT-2#*HGKG(J)*ATT*TAU*Q10/TX 22200 DPDTR=DPDTR-2#*HGKG(J)*ATT*TAU*FCT/TX 22250 Q2A=Q2A+T*HGKG(J)*(4#*ATT*EX2+2#*ATT)*Q10/(TX*TX) 22300 AR=AR+Q10*HGKG(J)/RT 22350 NEXT J 22400 SR=(-1#)*DADT/GASCON 22450 UR=AR+SR 22500 CVR=CVR+Q2A/GASCON 22550 Q=Q+QP 22600 RETURN 22650 *THERMDT 22700 GOSUB *IDEALT 22750 GOSUB *BASEDT 22800 GOSUB *QQTD 22850 QPQ=Q:QDPQ=Q5 22900 Z=BASEF+QPQ/(RT*D) 22950 DPDD=RT*(BASEF+Y*DZB)+QDPQ 23000 AD=AB+AR+AI-UREF/T+SREF 23050 GD=AD+Z 23100 UD=UB+UR+UI-UREF/T 23150 DPDT=RT*D*DPDTB+DPDTR 23200 CVDX=CVB+CVR+CVIX 23250 CPD=CVDX+T*DPDT*DPDT/(D*D*DPDD*GASCON) 23300 HD=UD+Z 23350 SD=SB+SR+SI-SREF 23400 RETURN 23450 *SECDERIVP 23600 D2PDDDD1=0 : D2PDD2=0 : D2PDTDD=0 : D2PDTDT1=0 : D2PDT2=0 : ZX=0 23610 D2DDT2A=0 : D2DDT2=0 : DDDT=0 23650 D2PRESIDDDDD1=0 : D2PRESIDDDDT=0 : D2PRESIDDT2=0 : D2PRESIDDD2=0 23750 D2PDDDD1=3#+ALPHA+3#*Y+4#*ALPHA*Y+3#*BETA*Y+ALPHA*Y*Y+3#*BETA*Y*Y 23800 D2PDDDD1=D2PDDDD1*B1/(2#*XX*XX*XX*XX*XX)+2#*B1*(B2/B1-GAMMA) 23850 D2PDD2=D2PDDDD1*RT 23900 D2PDTDD=Z0+8#*Y*(B2/B1-GAMMA)+(Y+B1T*D*T/2#)*((ALPHA+2#*BETA*Y)/(XX*XX*XX)+3#*Z0/XX) 23950 ZX=6#+3#*ALPHA+BETA+3#*ALPHA*Y+4#*BETA*Y+BETA*Y*Y 24000 D2PDTDD=D2PDTDD+B1T*D*T*Y*ZX/(2#*XX*XX*XX*XX*XX) 24050 D2PDTDD=D2PDTDD+2#*B2T*D*T-2#*B1T*D*T*GAMMA 24100 D2PDTDD=D2PDTDD*GASCON 24150 D2PDTDT1=(ALPHA+2#*BETA*Y)/(XX*XX*XX)+3#*Z0/XX 24200 D2PDTDT1=D2PDTDT1*(2#*B1T*D+B1TT*D*T)/4# 24250 D2PDTDT1=D2PDTDT1+B1T*B1T*D*D*T*ZX/(8#*XX*XX*XX*XX*XX)+2#*B2T*D-2#*B1T*D*GAMMA+B2TT*D*T-B1TT*D*T*GAMMA 24300 D2PDT2=D2PDTDT1*GASCON*D 24350 FOR I=1 TO INC 24400 K=II(I)+1 24450 L=JJ(I) 24500 QK=CDBL(K) : QL=CDBL(L) 24550 D2PRESIDDDDD1=2#/(D*D)-4#/D+4#*(QK-1#)*E/(D*Q20)+1#-3#*(QK-1#)*E/Q20+(QK-1#)*(QK-2#)*E*E/(Q20*Q20) 24600 D2PRESIDDD2=D2PRESIDDD2+D2PRESIDDDDD1*HGKG(I)*QT(L+1)*QR(K+1) 24650 D2PRESIDDDDT=D2PRESIDDDDT-(QL-1#)*HGKG(I)*QT(L+1)*QR(K+1)*(2#/D-1#+(QK-1#)*E/Q20)/T 24700 D2PRESIDDT2=D2PRESIDDT2+(QL-1#)*QL*HGKG(I)*QR(K+1)*QT(L+1)/(T*T) 24750 NEXT I 24800 D2PRESIDDD2A=0 : D2PRESIDDDDTC=0 24850 FOR J=37 TO 40 24900 K=II(J) 24950 KM=JJ(J) 25000 QK=CDBL(K) : QKM=CDBL(KM) 25050 DDZ=ADZ(J-36) 25100 DEL=D/DDZ-1# 25150 IF ABS(DEL)<1D-010 THEN DEL=1D-010 25200 EX1=(-1#)*AAD(J-36)*DEL^QK 25250 DEX=EXP(EX1)*DEL^QKM 25300 ATT=AAT(J-36) 25350 TX=ATZ(J-36) 25400 TAU=T/TX-1# 25450 EX2=(-1#)*ATT*TAU*TAU 25500 TEX=EXP(EX2) 25550 Q10=DEX*TEX 25600 QM=QKM/DEL-QK*AAD(J-36)*DEL^(QK-1#) 25650 D2PRESIDDD2A=QM*(2#/(D*D)+4#*QKM/(D*DDZ*DEL)+4#*QK*EX1/(D*DDZ*DEL)) 25700 D2PRESIDDD2A=D2PRESIDDD2A/DDZ+QM*(QKM*(QKM-1#)+2#*QK*QKM*EX1+QK*(QK-1#)*EX1+QK*QK*EX1*EX1)/(DDZ*DDZ*DDZ*DEL*DEL) 25750 D2PRESIDDD2A=D2PRESIDDD2A-(QKM-QK*(QK-1#)*EX1)*(4#/D+2*QKM/(DDZ*DEL)+2#*QK*EX1/(DDZ*DEL))/(DDZ*DDZ*DEL*DEL) 25800 D2PRESIDDD2A=D2PRESIDDD2A+(2#*QKM+QK*(QK-1#)*(QK-2#)*EX1)/(DDZ*DDZ*DDZ*DEL*DEL*DEL) 25850 D2PRESIDDD2=D2PRESIDDD2+HGKG(J)*Q10*D2PRESIDDD2A*D*D 25900 D2PRESIDDDDTC=2#*QM+D*QKM*QM/(DDZ*DEL)+D*QK*EX1*QM/(DDZ*DEL)+D*(QK*(QK-1#)*EX1/(DEL*DEL)-QKM/(DEL*DEL))/DDZ 25950 D2PRESIDDDDT=D2PRESIDDDDT-2#*D*HGKG(J)*ATT*TAU*Q10*D2PRESIDDDDTC/(TX*DDZ) 26000 D2PRESIDDT2=D2PRESIDDT2-2#*D*D*HGKG(J)*ATT*(1#+2#*EX2)*Q10*QM/(DDZ*TX*TX) 26050 NEXT J 26100 D2PDD2=D2PDD2+D2PRESIDDD2 26150 D2PDTDD=D2PDTDD+D2PRESIDDDDT 26200 D2PDT2=D2PDT2+D2PRESIDDT2 26250 D2DDT2A=DPDD*DPDD*D2PDT2-2#*DPDT*DPDD*D2PDTDD+DPDT*DPDT*D2PDD2 26300 D2DDT2=(-1#)*D2DDT2A/(DPDD*DPDD*DPDD) 26350 DDDT=(-1#)*DPDT/DPDD 26400 RETURN 26450 *PST 26500 IF T>314# THEN GOTO 26700 26550 PL=6.3573118#-8858.843#/T+607.56335*T^(-.6#) 26600 PS=.1#*EXP(PL) 26650 RETURN 26700 TR=T/647.25# 26750 W=ABS(1#-TR) 26800 BPST=0 26850 FOR I=1 TO 8 26900 ZPST=CDBL(I) 26950 BPST=BPST+A(I)*W^((ZPST+1#)/2#) 27000 NEXT I 27050 QPST=BPST/TR 27100 PS=22.093*EXP(QPST) 27150 RETURN 27200 *IDEALT 27250 TIDEAL=T/100 27300 TL=LOG(TIDEAL) 27350 GI=(-1#)*(C(1)/TIDEAL+C(2))*TL 27400 HI=(C(2)+C(1)*(1#-TL)/TIDEAL) 27450 CPI=C(2)-C(1)/TIDEAL 27500 FOR I=3 TO 18 27550 GI=GI-C(I)*TIDEAL^CDBL(I-6) 27600 HI=HI+C(I)*CDBL((I-6))*TIDEAL^CDBL(I-6) 27650 CPI=CPI+C(I)*CDBL((I-6))*CDBL((I-5))*TIDEAL^CDBL(I-6) 27700 NEXT I 27750 AI=GI-1# 27800 UI=HI-1# 27850 CVIX=CPI-1# 27900 SI=UI-AI 27950 RETURN 28000 *PCORRTPDLDV 28050 GOSUB *PST 28100 PPP=PS 28150 GOSUB *CORRTPDLDVDELG 28200 DP=0 28250 DP=DELG*RT/(1#/DV-1#/DL) 28300 PPP=PPP+DP 28350 IF ABS(DELG)<1D-005 THEN GOTO 28450 28400 DLL=DL:DVV=DV:GOTO 28150 28450 P=PPP 28500 RETURN 28550 *UNIT 28600 PRINT"*******************" 28650 PRINT"* Enter units *" 28700 PRINT"*******************" 28750 PRINT A1$ 28800 PRINT"Choose from 1=deg K, 2=deg C" 28850 INPUT IT 28900 IF IT<1 OR IT>2 THEN GOTO 28800 28950 NT$=NNT$(IT) 29000 PRINT A2$ 29050 PRINT"Choose from 1=kg/m3, 2=g/cm3" 29100 INPUT ID 29150 IF ID>2 OR ID<1 THEN GOTO 29050 29200 ND$=NND$(ID) 29250 FD=FFD(ID) 29300 PRINT A3$ 29350 PRINT"Choose from 1=MPa, 2=bar" 29400 INPUT IP 29450 IF IP>2 OR IP<1 THEN GOTO 29350 29500 NP$=NNP$(IP) 29550 FP=FFP(IP) 29900 RETURN 29950 *TTTT 30000 ON IT GOTO 30050, 30200 30050 TTT=T 30150 GOTO 30300 30200 TTT=T+273.15# 30300 RETURN 30350 *BLOCKDATA 30400 FOR I=1 TO 4:READ ATZ(I):NEXT I 30450 DATA 640#,640#,641.6#,270# 30500 FOR I=1 TO 4:READ ADZ(I):NEXT I 30550 DATA 0.319#,0.319#,0.319#,1.55# 30600 FOR I=1 TO 4:READ AAT(I):NEXT I 30650 DATA 2.0D+004,2.0D+004,4.0D+004,25.0# 30700 FOR I=1 TO 4:READ AAD(I):NEXT I 30750 DATA 34.0#,40.0#,30.0#,1.05D+003 30800 GASCON=.461522# : TZ=647.073 : AA=1# : INC=36 30850 UREF=-4328.454977# : SREF=7.618072# 30900 ALPHA=11#:BETA=44.333333333333#:GAMMA=3.5# 30950 FOR I=1 TO 10:READ BP(I):NEXT I 31000 DATA 0.7478629#,-0.3540782#,0.0#,0.0#,0.007159876#,0.0#,-0.003528426#,0.0#,0.0#,0.0# 31050 FOR I=1 TO 10:READ BQ(I):NEXT I 31100 DATA 1.1278334#,0.0#,-0.5944001#,-5.010996#,0.0#,0.63684256#,0.0#,0.0#,0.0#,0.0# 31150 FOR I=1 TO 40:READ HGKG(I):NEXT I 31200 DATA -5.3062968529023D+002,2.2744901424408D+003,7.8779333020687D+002 31250 DATA -6.9830527374994D+001,1.7863832875422D+004,-3.9514731563338D+004 31300 DATA 3.3803884280753D+004,-1.3855050202703D+004,-2.5637436613260D+005 31350 DATA 4.8212575981415D+005,-3.4183016969660D+005,1.2223156417448D+005 31400 DATA 1.1797433655832D+006,-2.1734810110373D+006,1.0829952168620D+006 31450 DATA -2.5441998064049D+005,-3.1377774947767D+006,5.2911910757704D+006 31500 DATA -1.3802577177877D+006,-2.5109914369001D+005,4.6561826115608D+006 31550 DATA -7.2752773275387D+006,4.1774246148294D+005,1.4016358244614D+006 31600 DATA -3.1555231392127D+006,4.7929666384584D+006,4.0912664781209D+005 31650 DATA -1.3626369388386D+006,6.9625220862664D+005,-1.0834900096447D+006 31700 DATA -2.2722827401688D+005,3.8365486000660D+005,6.8833257944332D+003 31750 DATA 2.1757245522644D+004,-2.6627944829770D+003,-7.0730418082074D+004 31800 DATA -0.225#,-1.68#,0.055#,-93.0# 31850 FOR I=1 TO 40:READ II(I):NEXT I 31900 DATA 0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,8,8,8,8,2,2,0,4,2,2,2,4 31950 FOR I=1 TO 40:READ JJ(I):NEXT I 32000 DATA 2,3,5,7,2,3,5,7,2,3,5,7,2,3,5,7,2,3,5,7,2,3,5,7,2,3,5,7,2,3,5,7,1,4,4,4,0,2,0,0 32050 FOR I=1 TO 8:READ A(I):NEXT I 32100 DATA -7.8889166#,2.5514255#,-6.716169#,33.239495# 32150 DATA -105.38479#,174.35319#,-148.39348#,48.631602# 32200 FOR I=1 TO 18:READ C(I):NEXT I 32250 DATA 1.9730271018D+001,2.09662681977D+001,-4.83429455355D-001,6.05743189245D+000 32300 DATA 2.256023885D+001,-9.87532442D+000,-4.3135538513D+000,4.58155781D-001 32350 DATA -4.7754901883D-002,4.1238460633D-003,-2.7929052852D-004 32400 DATA 1.4481695261D-005,-5.6473658748D-007,1.6200446D-008,-3.303822796D-010 32450 DATA 4.51916067368D-012,-3.70734122708D-014,1.37546068238D-016 32500 FOR I=1 TO 2:READ FFD(I):NEXT I 32550 DATA 1.0D-003,1.0# 32600 FOR I=1 TO 2:READ FFP(I):NEXT I 32650 DATA 1.0#,10.0# 32800 FOR I=1 TO 2:READ NNT$(I):NEXT I 32850 DATA "K","deg C" 32900 FOR I=1 TO 2:READ NND$(I):NEXT I 32950 DATA "kg/m3","g/cm3" 33000 FOR I=1 TO 2:READ NNP$(I):NEXT I 33050 DATA "MPa","bar" 33200 A1$="TEMPERATURE":A2$="DENSITY":A3$="PRESSURE" 33250 RETURN 33300 *PARAMETERS 33350 REM Parameters for MgCl2(aq) 33400 FOR I=1 TO 17:READ B0MG(I):READ B1MG(I):READ CMG(I):NEXT I 33450 DATA 4.05500216D-001,0#,-1.31583284D-001 33500 DATA 4.14544383D-003,-1.6737337D-001,-9.58990984D-004 33550 DATA -2.28457183D-004,1.97283577D-002,3.4108859D-004 33600 DATA -6.33122986D-008,7.53743526D-006,1.28494802D-007 33650 DATA 4.01087176D-005,-3.69607146D-003,-6.44255467D-005 33700 DATA 0#,-2.50381123D-002,-6.73759733D-004 33750 DATA -1.71244107D-003,0#,7.98749531D-004 33800 DATA 1.26084149D-003,0#,-1.18509329D-006 33850 DATA -1.52128885D-001,0#,0# 33900 DATA -3.46378859D-006,1.07765583D-006,0# 33950 DATA 3.70249437D-009,-3.96914481D-009,6.34029223D-012 34000 DATA 2.41466763D-003,0#,0# 34050 DATA -2.29175172D-002,0#,0# 34100 DATA 0#,0#,-5.60197799D-009 34150 DATA 0#,0#,1.7747878D-006 34200 DATA -1.2497591D-010,0#,0# 34250 DATA 3.05038432D-013,0#,1.31968399D-014 34300 REM Parameters for CaCl2(aq) 34350 FOR I=1 TO 17:READ B0CA(I):READ B1CA(I):READ CCA(I):NEXT I 34400 DATA 0#,0#,-1.31583284D-001 34450 DATA 4.14544383D-003,-1.67373370D-001,0# 34500 DATA -2.76747461D-005,1.95851174D-002,2.89257572D-004 34550 DATA 3.37946704D-008,7.51975973D-006,1.28494802D-007 34600 DATA 0#,-3.67501519D-003,-5.62730680D-005 34650 DATA 0#,-2.39198164D-002,-5.94574164D-004 34700 DATA 1.18276629D-003,0#,0# 34750 DATA 1.26084149D-003,0#,-9.58297102D-007 34800 DATA -1.58424548D-001,0#,0# 34850 DATA -3.29726430D-006,1.07765583D-006,0# 34900 DATA 3.37768212D-009,-3.96914481D-009,6.34029223D-012 34950 DATA 2.41466763D-003,0#,0# 35000 DATA -2.29175172D-002,0#,0# 35050 DATA 0#,0#,-5.60197799D-009 35100 DATA 0#,0#,1.77478780D-006 35150 DATA -1.24975910D-010,0#,0# 35200 DATA 3.54502058D-013,0#,0# 35250 FOR I=1 TO 6 : READ CPJ1MG(I): READ CPJ2MG(I) : READ CPJ3MG(I) : NEXT I 35300 DATA 4.07423472D+001,-8.38148908D-002,0# 35350 DATA -2.72444581D+003,9.10259737D+000,0# 35400 DATA -9.72127233D-002,2.20213237D-004,1.81254274D-008 35450 DATA 1.60473548D-004,-2.60875181D-007,0# 35500 DATA -7.61133887D+001,0#,0# 35550 DATA -5.03018030D+003,3.94904571D+000,-1.91527935D-003 35600 FOR I=1 TO 6 : READ CPJ1CA(I): READ CPJ2CA(I) : READ CPJ3CA(I) : NEXT I 35650 DATA 5.28444257D+001,-1.02744655D-001,0# 35700 DATA -4.29572657D+003,1.01105277D+001,0# 35750 DATA -1.27472817D-001,2.92179180D-004,1.81254274D-008 35800 DATA 1.89149250D-004,-3.84715211D-007,0# 35850 DATA -7.61133887D+001,0#,0# 35900 DATA -5.03018030D+003,5.72397675D+000,-1.91527935D-003 35950 FOR I=1 TO 7 : READ CPJ0MG(I) : NEXT I 36000 DATA -1.96343826D+006 36050 DATA 4.20958881D+007 36100 DATA 3.69032606D+005 36150 DATA -1.09727522D+003 36200 DATA 5.68603297D-001 36250 DATA -3.02488974D+004 36300 DATA -1.27725204D+006 36350 FOR I=1 TO 7 : READ CPJ0CA(I) : NEXT I 36400 DATA -1.96357369D+006 36450 DATA 4.21200505D+007 36500 DATA 3.69032606D+005 36550 DATA -1.09727522D+003 36600 DATA 5.68603297D-001 36650 DATA -3.05393606D+004 36700 DATA -1.25806790D+006 36750 DELTACPJ0=72.59# 36800 MGCL2=95.211# : CACL2=110.984 36850 TTR=298.15# : PR=1.01325 36900 RVGAS=83.1441# : RGAS=8.31441# : MW=18.0152 36950 REM Entropies of ions (Pitzer, 1995) are summed stoichiometrically. 37000 S0MGCL2=-3.084*RGAS : S0CACL2=7.156#*RGAS 37050 FOR I=1 TO 9: READ DU(I) : NEXT I 37100 DATA 3.4279D+002,-5.0866D-003,9.4690D-007,-2.0525#,3.1159D+003 37150 DATA -1.8289D+002,-8.0325D+003,4.2142D+006,2.1417# 37200 EE=4.803242D-010 : BC=1.380662D-016 37250 RETURN 37300 *DEBYEHUCKEL 37350 PRES=(PRES/FP)*(FFP(2)/FFP(1)) 37450 DPDD=DPDD*(FFP(2)/FFP(1)) 37500 DPDT=DPDT*(FFP(2)/FFP(1)) 37650 EPS=DU(1)*EXP(DU(2)*T+DU(3)*T*T) 37700 E=1#+(PRES-1000)/(DU(7)+DU(8)/T+DU(9)*T+1000) 37750 E=LOG(E) 37800 EPS=EPS+(DU(4)+(DU(5)/(DU(6)+T)))*E 37850 APHI=SQR(2#*3.14159265#*6.022045D+023*D/1000)/3# 37900 APHI=APHI*EE*EE*EE/(BC*SQR(BC)*T*SQR(T)*EPS*SQR(EPS)) 37950 DET=DU(7)+DU(8)/T+DU(9)*T+PRES 38000 DEPSDP=DU(4)+DU(5)/(DU(6)+T) 38050 DEPSDP=DEPSDP/DET 38100 DRHODPDD=1#/(D*DPDD) 38150 AV=2#*RVGAS*T*APHI*(3#*DEPSDP/EPS-DRHODPDD) 38200 ALPH=DPDT/(D*DPDD) 38250 DE=DU(7)+DU(8)/T+DU(9)*T 38300 DEPS=DU(1)*(DU(2)+2#*DU(3)*T)*EXP(DU(2)*T+DU(3)*T*T) 38350 DEPS=DEPS-DU(5)*LOG(1#+(PRES-1000)/(DE+1000))/((DU(6)+T)*(DU(6)+T)) 38400 DEPS=DEPS+(DU(4)+DU(5)/(DU(6)+T))*(1000-PRES)*(DU(9)-DU(8)/(T*T))/((DE+PRES)*(DE+1000)) 38450 DEPS=DEPS/EPS 38500 AH=1#+T*DEPS+T*ALPH/3# 38550 AH=AH*(-6#)*APHI*RGAS*T 38600 D2EPS=DU(1)*(DU(2)+2#*DU(3)*T)*(DU(2)+2#*DU(3)*T)*EXP(DU(2)*T+DU(3)*T*T) 38650 D2EPS=D2EPS+2#*DU(1)*DU(3)*EXP(DU(2)*T+DU(3)*T*T) 38700 D2EPS=D2EPS+(2#*DU(5)/((DU(6)+T)*(DU(6)+T)*(DU(6)+T)))*LOG(1#+(PRES-1000)/(DE+1000)) 38750 D2EPS=D2EPS-(2#*DU(5)/((DU(6)+T)*(DU(6)+T)))*(DU(9)-DU(8)/(T*T))*(1#/(DE+PRES)-1#/(DE+1000)) 38800 D2EPS=D2EPS+(DU(4)+DU(5)/(DU(6)+T))*(2#*DU(8)/(T*T*T))*(1#/(DE+PRES)-1#/(DE+1000)) 38850 D2EPS=D2EPS-(DU(4)+DU(5)/(DU(6)+T))*(DU(9)-DU(8)/(T*T))*(DU(9)-DU(8)/(T*T))*(1#/((DE+PRES)*(DE+PRES))-1#/((DE+1000)*(DE+1000))) 38900 D2EPS=D2EPS/EPS 38950 DWDDDT=DDDT/D 39000 DWD2DDT2=D2DDT2/D 39050 AJ=2#*DWD2DDT2-DWDDDT*DWDDDT-2#*DWDDDT/T-6#*D2EPS+15#*DEPS*DEPS+6#*DEPS/T-6#*DWDDDT*DEPS+3#/(T*T) 39100 AJ=AJ*APHI*RGAS*T*T 39150 RETURN 39200 *MGCA 39211 S=S*MW : H=H*MW : G=G*MW 39212 S=S+SREF*RGAS : H=H+UREF*RGAS : G=G+UREF*RGAS-T*SREF*RGAS 39220 CPW=CPD*RGAS 39550 IF ISALT=1 THEN SALT=MGCL2 : SSALTPRTR=S0MGCL2 : GOTO 39650 39600 IF ISALT=2 THEN SALT=CACL2 : SSALTPRTR=S0CACL2 : GOTO 39800 39650 FOR I=1 TO 17 : B0(I)=B0MG(I) : B1(I)=B1MG(I) : CMX(I)=CMG(I) : NEXT I 39700 FOR I=1 TO 6 : CPJ1(I)=CPJ1MG(I) : CPJ2(I)=CPJ2MG(I) : CPJ3(I)=CPJ3MG(I) : NEXT I 39750 FOR I=1 TO 7 : CPJ0(I)=CPJ0MG(I) : NEXT I : GOTO 39950 39800 FOR I=1 TO 17 : B0(I)=B0CA(I) : B1(I)=B1CA(I) : CMX(I)=CCA(I) : NEXT I 39850 FOR I=1 TO 6 : CPJ1(I)=CPJ1CA(I) : CPJ2(I)=CPJ2CA(I) : CPJ3(I)=CPJ3CA(I) : NEXT I 39900 FOR I=1 TO 7 : CPJ0(I)=CPJ0CA(I) : NEXT I 39950 CPJ0(1)=CPJ0(1)+DELTACPJ0 40000 MI=SQR(3#*MOL) 40050 TL=T-227# 40100 TH=647#-T 40150 HSALTPRTR=0 : HSALTTR=0 : HSALT=0 40200 SSALTTR=0 : SSALT=0 40250 HSALTTR=HSALTPRTR+(CPJ1(1)+2#*CPJ1(2)/TTR-CPJ1(4)*TTR*TTR)*(PRES-PR) 40300 HSALTTR=HSALTTR+(CPJ1(5)*(2#*TTR-227#)/((TTR-227#)*(TTR-227#)))*(PRES-PR) 40350 HSALTTR=HSALTTR+(CPJ1(6)*(647#-2#*TTR)/((647#-TTR)*(647#-TTR)))*(PRES-PR) 40400 HSALTTR=HSALTTR+(CPJ2(1)+2#*CPJ2(2)/TTR-CPJ2(4)*TTR*TTR)*(PRES*PRES-PR*PR) 40450 HSALTTR=HSALTTR+(CPJ2(5)*(2#*TTR-227#)/((TTR-227#)*(TTR-227#)))*(PRES*PRES-PR*PR) 40500 HSALTTR=HSALTTR+(CPJ2(6)*(647#-2#*TTR)/((647#-TTR)*(647#-TTR)))*(PRES*PRES-PR*PR) 40550 HSALTTR=HSALTTR+(CPJ3(1)+2#*CPJ3(2)/TTR-CPJ3(4)*TTR*TTR)*(PRES*PRES*PRES-PR*PR*PR) 40600 HSALTTR=HSALTTR+(CPJ3(5)*(2#*TTR-227#)/((TTR-227#)*(TTR-227#)))*(PRES*PRES*PRES-PR*PR*PR) 40650 HSALTTR=HSALTTR+(CPJ3(6)*(647#-2#*TTR)/((647#-TTR)*(647#-TTR)))*(PRES*PRES*PRES-PR*PR*PR) 40700 HSALT=HSALTTR+CPJ0(1)*(T-TTR)+CPJ0(2)*(LOG(T)-LOG(TTR))+CPJ0(3)*(T*LOG(T)-TTR*LOG(TTR)-T+TTR) 40750 HSALT=HSALT+CPJ0(4)*(T*T-TTR*TTR)/2# 40800 HSALT=HSALT+CPJ0(5)*(T*T*T-TTR*TTR*TTR)/3#+CPJ0(6)*LOG(TL/(TTR-227#))-CPJ0(7)*LOG(TH/(647#-TTR)) 40850 HSALT=HSALT-2#*PRES*(CPJ1(2)*(1#/TTR-1#/T)+CPJ1(4)*(T*T-TTR*TTR)/2#) 40900 HSALT=HSALT-PRES*CPJ1(5)*((2#*TTR-227#)/((TTR-227#)*(TTR-227#))-(2#*T-227#)/(TL*TL)) 40950 HSALT=HSALT-PRES*CPJ1(6)*((647#-2#*TTR)/((647#-TTR)*(647#-TTR))-(647#-2#*T)/(TH*TH)) 41000 HSALT=HSALT-2#*PRES*PRES*(CPJ2(2)*(1#/TTR-1#/T)+CPJ2(4)*(T*T-TTR*TTR)/2#) 41050 HSALT=HSALT-PRES*PRES*CPJ2(5)*((2#*TTR-227#)/((TTR-227#)*(TTR-227#))-(2#*T-227#)/(TL*TL)) 41100 HSALT=HSALT-PRES*PRES*CPJ2(6)*((647#-2#*TTR)/((647#-TTR)*(647#-TTR))-(647#-2#*T)/(TH*TH)) 41150 HSALT=HSALT-2#*PRES*PRES*PRES*(CPJ3(2)*(1#/TTR-1#/T)+CPJ3(4)*(T*T-TTR*TTR)/2#) 41200 HSALT=HSALT-PRES*PRES*PRES*CPJ3(5)*((2#*TTR-227#)/((TTR-227#)*(TTR-227#))-(2#*T-227#)/(TL*TL)) 41250 HSALT=HSALT-PRES*PRES*PRES*CPJ3(6)*((647#-2#*TTR)/((647#-TTR)*(647#-TTR))-(647#-2#*T)/(TH*TH)) 41300 SSALTTR=SSALTPRTR+(CPJ1(2)/(TTR*TTR)-CPJ1(3)-2#*CPJ1(4)*TTR+CPJ1(5)/((TTR-227#)*(TTR-227#)))*(PRES-PR) 41350 SSALTTR=SSALTTR-(CPJ1(6)/((647#-TTR)*(647#-TTR)))*(PRES-PR) 41400 SSALTTR=SSALTTR+(CPJ2(2)/(TTR*TTR)-CPJ2(3)-2#*CPJ2(4)*TTR)*(PRES*PRES-PR*PR)/2# 41450 SSALTTR=SSALTTR+(CPJ2(5)/((TTR-227#)*(TTR-227#)))*(PRES*PRES-PR*PR)/2# 41500 SSALTTR=SSALTTR-(CPJ2(6)/((647#-TTR)*(647#-TTR)))*(PRES*PRES-PR*PR)/2# 41550 SSALTTR=SSALTTR+(CPJ3(2)/(TTR*TTR)-CPJ3(3)-2#*CPJ3(4)*TTR)*(PRES*PRES*PRES-PR*PR*PR)/3# 41600 SSALTTR=SSALTTR+(CPJ3(5)/((TTR-227#)*(TTR-227#)))*(PRES*PRES*PRES-PR*PR*PR)/3# 41650 SSALTTR=SSALTTR-(CPJ3(6)/((647#-TTR)*(647#-TTR)))*(PRES*PRES*PRES-PR*PR*PR)/3# 41700 SSALT=SSALTTR+CPJ0(1)*(LOG(T)-LOG(TTR))-CPJ0(2)*(1#/T-1#/TTR) 41750 SSALT=SSALT+CPJ0(3)*(LOG(T)*LOG(T)-LOG(TTR)*LOG(TTR))/2# 41800 SSALT=SSALT+CPJ0(4)*(T-TTR)+CPJ0(5)*(T*T-TTR*TTR)/2#+CPJ0(6)*LOG(TTR*TL/((TTR-227#)*T))/227# 41850 SSALT=SSALT+CPJ0(7)*LOG(T*(647#-TTR)/(TTR*TH))/647# 41900 SSALT=SSALT-(CPJ1(2)*(1#/(TTR*TTR)-1#/(T*T))+2#*CPJ1(4)*(T-TTR))*PRES 41950 SSALT=SSALT+(CPJ1(5)*(1#/(TL*TL)-1#/((TTR-227#)*(TTR-227#))))*PRES 42000 SSALT=SSALT-CPJ1(6)*(1#/(TH*TH)-1#/((647#-TTR)*(647#-TTR)))*PRES 42050 SSALT=SSALT-(CPJ2(2)*(1#/(TTR*TTR)-1#/(T*T))+2#*CPJ2(4)*(T-TTR))*PRES*PRES 42100 SSALT=SSALT+(CPJ2(5)*(1#/(TL*TL)-1#/((TTR-227#)*(TTR-227#))))*PRES*PRES 42150 SSALT=SSALT-CPJ2(6)*(1#/(TH*TH)-1#/((647#-TTR)*(647#-TTR)))*PRES*PRES 42200 SSALT=SSALT-(CPJ3(2)*(1#/(TTR*TTR)-1#/(T*T))+2#*CPJ3(4)*(T-TTR))*PRES*PRES*PRES 42250 SSALT=SSALT+(CPJ3(5)*(1#/(TL*TL)-1#/((TTR-227#)*(TTR-227#))))*PRES*PRES*PRES 42300 SSALT=SSALT-CPJ3(6)*(1#/(TH*TH)-1#/((647#-TTR)*(647#-TTR)))*PRES*PRES*PRES 42350 GSALT=0 42400 GSALT=HSALT-T*SSALT 42450 ALPHA1=2#-.00181*(T-TTR):ALPHA2=12# 42500 BETA2=(-.5#)*EXP(16.5#-7150/T) 42550 F0(1)=B0(1)+.5#*B0(2)*T+B0(3)*T*T/6#+B0(4)*T*T*T/12#+B0(5)*T*T*(LOG(T)-5#/6#)/6# 42600 F0(1)=F0(1)+B0(6)*(T/2#+3#*227#*227#/(2#*T)+227#*TL*LOG(TL)/T)+B0(7)*(2#*TH/T+1#)*LOG(TH) 42650 F1(1)=B0(8)+B0(9)/T+B0(10)*T+B0(11)*T*T+B0(12)/TL+B0(13)/TH 42700 F2(1)=B0(14)+B0(15)/T+B0(16)*T+B0(17)*T*T 42750 F0(2)=B1(1)+.5#*B1(2)*T+B1(3)*T*T/6#+B1(4)*T*T*T/12#+B1(5)*T*T*(LOG(T)-5#/6#)/6# 42800 F0(2)=F0(2)+B1(6)*(T/2#+3#*227#*227#/(2#*T)+227#*TL*LOG(TL)/T)+B1(7)*(2#*TH/T+1#)*LOG(TH) 42850 F1(2)=B1(8)+B1(9)/T+B1(10)*T+B1(11)*T*T+B1(12)/TL+B1(13)/TH 42900 F2(2)=B1(14)+B1(15)/T+B1(16)*T+B1(17)*T*T 42950 F0(3)=CMX(1)+.5#*CMX(2)*T+CMX(3)*T*T/6#+CMX(4)*T*T*T/12#+CMX(5)*T*T*(LOG(T)-5#/6#)/6# 43000 F0(3)=F0(3)+CMX(6)*(T/2#+3#*227#*227#/(2#*T)+227#*TL*LOG(TL)/T)+CMX(7)*(2#*TH/T+1#)*LOG(TH) 43050 F1(3)=CMX(8)+CMX(9)/T+CMX(10)*T+CMX(11)*T*T+CMX(12)/TL+CMX(13)/TH 43100 F2(3)=CMX(14)+CMX(15)/T+CMX(16)*T+CMX(17)*T*T 43150 BETA0=F0(1)+F1(1)*PRES+F2(1)*PRES*PRES 43200 BETA1=F0(2)+F1(2)*PRES+F2(2)*PRES*PRES 43250 CHM=F0(3)+F1(3)*PRES+F2(3)*PRES*PRES 43300 H1PHI=EXP((-1#)*ALPHA1*MI):H2PHI=EXP((-1#)*ALPHA2*MI) 43350 BPHI=BETA0+BETA1*H1PHI+BETA2*H2PHI 43400 OSC=1#-2*APHI*MI/(1#+1.2#*MI)+(4#/3#)*MOL*BPHI+4#*SQR(2#)*MOL*MOL*CHM/3# 43450 H1G=2#*(1#-(1#+ALPHA1*MI)*H1PHI)/(ALPHA1*ALPHA1*MI*MI) 43500 H2G=2#*(1#-(1#+ALPHA2*MI)*H2PHI)/(ALPHA2*ALPHA2*MI*MI) 43550 BG=BETA0+BETA1*H1G+BETA2*H2G 43600 GEX=(-4#)*APHI*MI*MI*LOG(1#+1.2#*MI)/1.2#+4#*MOL*MOL*BG+2#*SQR(2#)*MOL*MOL*MOL*CHM 43650 GEX=GEX*RGAS*T 43700 BGM=BG+BPHI 43750 GM1=(-2#)*APHI*(MI/(1#+1.2#*MI)+2#*LOG(1#+1.2#*MI)/1.2#) 43800 GM2=(4#/3#)*MOL*BGM+2#*SQR(2#)*MOL*MOL*CHM 43850 GM=GM1+GM2 43900 GM=EXP(GM) 43950 DB0DT=.5#*B0(2)+B0(3)*T/3#+B0(4)*T*T/4#+B0(5)*T*(LOG(T)-1#/3#)/3# 44000 DB0DT=DB0DT+B0(6)*(.5#-3#*227#*227#/(2#*T*T)+227#*227#*LOG(TL)/(T*T)+227#/T) 44050 DB0DT=DB0DT+B0(7)*((-1#)*1294#*LOG(TH)/(T*T)-(1294#-T)/(T*TH)) 44100 DB0DT=DB0DT+((-1#)*B0(9)/(T*T)+B0(10)+2#*B0(11)*T-B0(12)/(TL*TL)+B0(13)/(TH*TH))*PRES 44150 DB0DT=DB0DT+((-1#)*B0(15)/(T*T)+B0(16)+2#*B0(17)*T)*PRES*PRES 44200 DB1DT=.5#*B1(2)+B1(3)*T/3#+B1(4)*T*T/4#+B1(5)*T*(LOG(T)-1#/3#)/3# 44250 DB1DT=DB1DT+B1(6)*(.5#-3#*227#*227#/(2#*T*T)+227#*227#*LOG(TL)/(T*T)+227#/T) 44300 DB1DT=DB1DT+B1(7)*((-1#)*1294#*LOG(TH)/(T*T)-(1294#-T)/(T*TH)) 44350 DB1DT=DB1DT+((-1#)*B1(9)/(T*T)+B1(10)+2#*B1(11)*T-B1(12)/(TL*TL)+B1(13)/(TH*TH))*PRES 44400 DB1DT=DB1DT+((-1#)*B1(15)/(T*T)+B1(16)+2#*B1(17)*T)*PRES*PRES 44450 DCHMDT=.5#*CMX(2)+CMX(3)*T/3#+CMX(4)*T*T/4#+CMX(5)*T*(LOG(T)-1#/3#)/3# 44500 DCHMDT=DCHMDT+CMX(6)*(.5#-3#*227#*227#/(2#*T*T)+227#*227#*LOG(TL)/(T*T)+227#/T) 44550 DCHMDT=DCHMDT+CMX(7)*((-1#)*1294#*LOG(TH)/(T*T)-(1294#-T)/(T*TH)) 44600 DCHMDT=DCHMDT+((-1#)*CMX(9)/(T*T)+CMX(10)+2#*CMX(11)*T-CMX(12)/(TL*TL)+CMX(13)/(TH*TH))*PRES 44650 DCHMDT=DCHMDT+((-1#)*CMX(15)/(T*T)+CMX(16)+2#*CMX(17)*T)*PRES*PRES 44700 DB2DT=(-3575#)*EXP(16.5#-7150/T)/(T*T) 44750 DH1GDT=(-1#)*(.00181)*(2#/(MI*MI))*((-2#)+(2#+2#*ALPHA1*MI+ALPHA1*ALPHA1*MI*MI)*H1PHI) 44800 DH1GDT=DH1GDT/(ALPHA1*ALPHA1*ALPHA1) 44850 DH2GDT=0 44900 BL=DB0DT+DB1DT*H1G+DB2DT*H2G+BETA1*DH1GDT+BETA2*DH2GDT 44950 CL=DCHMDT 45000 PHIL=3#*AH*LOG(1#+1.2#*MI)/1.2#-4#*RGAS*T*T*(MOL*BL+MOL*MOL*CL/SQR(2#)) 45050 P6COEF=(227#/(T*T))*(3#*227#/T-2#*227#*LOG(T-227#)/T+227#/(T-227#)-1#) 45100 P7COEF=1294#/(T*T*TH)+1294#*2#*LOG(TH)/(T*T*T)+1#/(T*TH)+(1294#-T)*(647#-2#*T)/(T*T*TH*TH) 45150 D2B0DT2=B0(3)/3#+B0(4)*T/2#+B0(5)*(LOG(T)+2#/3#)/3# 45200 D2B0DT2=D2B0DT2+P6COEF*B0(6) 45250 D2B0DT2=D2B0DT2+P7COEF*B0(7) 45300 D2B0DT2=D2B0DT2+2#*(B0(9)/(T*T*T)+B0(11)+B0(12)/(TL*TL*TL)+B0(13)/(TH*TH*TH))*PRES 45350 D2B0DT2=D2B0DT2+2#*(B0(15)/(T*T*T)+B0(17))*PRES*PRES 45400 D2B1DT2=B1(3)/3#+B1(4)*T/2#+B1(5)*(LOG(T)+2#/3#)/3# 45450 D2B1DT2=D2B1DT2+P6COEF*B1(6) 45500 D2B1DT2=D2B1DT2+P7COEF*B1(7) 45550 D2B1DT2=D2B1DT2+2#*(B1(9)/(T*T*T)+B1(11)+B1(12)/(TL*TL*TL)+B1(13)/(TH*TH*TH))*PRES 45600 D2B1DT2=D2B1DT2+2#*(B1(15)/(T*T*T)+B1(17))*PRES*PRES 45650 D2CHMDT2=CMX(3)/3#+CMX(4)*T/2#+CMX(5)*(LOG(T)+2#/3#)/3# 45700 D2CHMDT2=D2CHMDT2+P6COEF*CMX(6) 45750 D2CHMDT2=D2CHMDT2+P7COEF*CMX(7) 45800 D2CHMDT2=D2CHMDT2+2#*(CMX(9)/(T*T*T)+CMX(11)+CMX(12)/(TL*TL*TL)+CMX(13)/(TH*TH*TH))*PRES 45850 D2CHMDT2=D2CHMDT2+2#*(CMX(15)/(T*T*T)+CMX(17))*PRES*PRES 45900 D2B2DT2=3575#*EXP(16.5#-7150/T)*(2#-7150/T)/(T*T*T) 45950 D2H1GDT2A=(6#-(6#*ALPHA1*MI+3#*ALPHA1*ALPHA1*MI*MI+ALPHA1*ALPHA1*ALPHA1*MI*MI*MI+6#)*H1PHI) 46000 D2H1GDT2A=D2H1GDT2A/(ALPHA1*ALPHA1*ALPHA1*ALPHA1) 46050 D2H1GDT2=D2H1GDT2A*(.00181)*(.00181)*2#/(MI*MI) 46100 D2H2GDT2=0 46150 BJJ=D2B0DT2+D2B1DT2*H1G+2#*DB1DT*DH1GDT+BETA1*D2H1GDT2+D2B2DT2*H2G+2#*DB2DT*DH2GDT 46200 BJJ=BJJ+BETA2*D2H2GDT2 46250 BJ=BJJ+(2#/T)*BL 46300 CJ=D2CHMDT2+(2#/T)*CL 46350 CP0=CPJ0(1)+CPJ0(2)/T+CPJ0(3)*LOG(T)+CPJ0(4)*T+CPJ0(5)*T*T+CPJ0(6)/TL+CPJ0(7)/TH 46400 CP0=CP0-PRES*(2#*CPJ1(2)/(T*T)+2#*CPJ1(4)*T+2#*CPJ1(5)*T/(TL*TL*TL)+2#*CPJ1(6)*T/(TH*TH*TH)) 46450 CP0=CP0-PRES*PRES*(2#*CPJ2(2)/(T*T)+2#*CPJ2(4)*T+2#*CPJ2(5)*T/(TL*TL*TL)+2#*CPJ2(6)*T/(TH*TH*TH)) 46500 CP0=CP0-PRES*PRES*PRES*(2#*CPJ3(2)/(T*T)+2#*CPJ3(4)*T+2#*CPJ3(5)*T/(TL*TL*TL)+2#*CPJ3(6)*T/(TH*TH*TH)) 46550 PHICP=CP0+3#*AJ*LOG(1#+1.2#*MI)/1.2#-4#*RGAS*T*T*(MOL*BJ+MOL*MOL*CJ/SQR(2#)) 46600 CPX=3#*AJ*LOG(1#+1.2#*MI)/1.2#-4#*RGAS*T*T*(MOL*BJ+MOL*MOL*CJ/SQR(2#)) 46650 V01=CPJ1(1)+CPJ1(2)/T+CPJ1(3)*T+CPJ1(4)*T*T+CPJ1(5)/TL+CPJ1(6)/TH 46700 V01=V01*10 46750 V02=CPJ2(1)+CPJ2(2)/T+CPJ2(3)*T+CPJ2(4)*T*T+CPJ2(5)/TL+CPJ2(6)/TH 46800 V02=V02*20 46850 V03=CPJ3(1)+CPJ3(2)/T+CPJ3(3)*T+CPJ3(4)*T*T+CPJ3(5)/TL+CPJ3(6)/TH 46900 V03=V03*30 46950 V0=V01+V02*PRES+V03*PRES*PRES 47000 DB2DP=0 47050 DB0DP=F1(1)+2#*F2(1)*PRES 47100 DB1DP=F1(2)+2#*F2(2)*PRES 47150 DCHMDP=F1(3)+2#*F2(3)*PRES 47200 DBGDP=DB0DP+DB1DP*H1G+DB2DP*H2G 47250 VPHI=V0+3#*AV*LOG(1#+1.2#*MI)/1.2#+4#*RVGAS*T*(MOL*DBGDP+MOL*MOL*DCHMDP*SQR(2#)) 47300 VTOTAL=1000/D+MOL*VPHI 47350 DSOLN=(1000+SALT*MOL)/VTOTAL 47400 SX=(PHIL-GEX/MOL)/T 47450 SSPEC=S*(1000/MW)+MOL*(SSALT+SX)+RGAS*MOL*(3#-3#*LOG(MOL)-2#*LOG(2#)) 47500 SSPEC=SSPEC/(1000+MOL*SALT) 47550 HSPEC=H*(1000/MW)+MOL*(HSALT+PHIL) 47600 HSPEC=HSPEC/(1000+MOL*SALT) 47650 CPSPEC=CPW*(1000/MW)+MOL*PHICP 47700 CPSPEC=CPSPEC/(1000+MOL*SALT) 47750 LPRINT 47800 LPRINT USING"V(water)=+##.### Vsalt=+###.##";MW/D,V0 47850 LPRINT 47900 LPRINT USING"G/RT= +##.#### Gsalt/RT= +##.###";G/(RGAS*T),GSALT/(RGAS*T) 47950 LPRINT USING"H/RT= +##.#### Hsalt/RT= +##.###";H/(RGAS*T),HSALT/(RGAS*T) 48000 LPRINT USING"S/R= +##.#### Ssalt/R= +##.###";S/RGAS,SSALT/RGAS 48050 LPRINT USING"Cp/R= +##.### Cpsalt/R= +###.##";CPW/RGAS,CP0/RGAS 48100 LPRINT 48150 LPRINT USING"m=#.##### Density(g/cm3)= +#.#####";MOL,DSOLN 48200 LPRINT USING" Osmotic coeff= +#.###";OSC 48250 LPRINT USING" Activity coeff= +#.###";GM 48300 LPRINT USING" phiL/RT= +##.###";PHIL/(RGAS*T) 48350 LPRINT USING" Ex entr/R= +##.###";SX/RGAS 48400 LPRINT USING" phiCp/R= +###.##";PHICP/RGAS 48450 LPRINT USING" Hspecific(J/g)= +#.####^^^^^";HSPEC 48500 LPRINT USING" Sspecific(J/g K)= +#.###";SSPEC 48550 LPRINT USING" Cpspecific(J/g K)= +#.###";CPSPEC 48600 LPRINT 48650 RETURN